解决PyTorch无法调用GPU,torch.cuda.is 您所在的位置:网站首页 torch gpu 解决PyTorch无法调用GPU,torch.cuda.is

解决PyTorch无法调用GPU,torch.cuda.is

2023-02-20 20:42| 来源: 网络整理| 查看: 265

解决PyTorch无法调用GPU,torch.cuda.is_available()显示False的问题

在Aliyun ECS上部署Demucs项目时,发现torch始终无法调用GPU。python -c "import torch;print(torch.cuda.is_available())"一直显示是False。

一、先说答案

需要修改Demucs项目默认的 environment-cuda.yml ,覆盖指定这几个参数

- python=3.9.7 - pytorch=1.12.1 - torchaudio=0.12.1 - cudatoolkit=10.2 - torchvision=0.13.1

完整文件如下:

name: demucs-new channels: - pytorch - conda-forge dependencies: - python=3.9.7 - ffmpeg>=4.2 - pytorch=1.12.1 - torchaudio=0.12.1 - cudatoolkit=10.2 - torchvision=0.13.1 - tqdm>=4.36 - pip - pip: - diffq>=0.2 - dora-search - einops - hydra-colorlog>=1.1 - hydra-core>=1.1 - julius>=0.2.3 - lameenc>=1.2 - openunmix - musdb>=0.4.0 - museval>=0.4.0 - soundfile - submitit - treetable>=0.2.3

如果之前已经用默认的yml文件创建了环境,需先把原来的环境删掉。修改完成后,执行以下命令

. /root/miniconda/etc/profile.d/conda.sh conda env update -f environment-cuda.yml conda activate demucs-new conda deactivate pip install -e .

实验是否成功

python -c "import torch;print('torch cpu version: ' + str(torch.__version__));print('torch cuda version: ' + str(torch.version.cuda));print('cuda is_available: ' + str(torch.cuda.is_available()));torch.zeros(1).cuda();" 二、解决过程

ECS创建时有设置安装了nvidia驱动和CUDA,使用

nvidia-smi nvcc -V cat /usr/local/cuda/version.txt

可以正常显示驱动版本,如下:

CUDA 版本 10.2.89 / Driver 版本 460.91.03 / CUDNN 版本 7.6.5 NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Wed_Oct_23_19:24:38_PDT_2019 Cuda compilation tools, release 10.2, V10.2.89

但Demucs所依赖的Pytorch始终无法调用。查看了environment-cuda.yml,发现

- python>=3.7,=1.8.1 - torchaudio>=0.8 - cudatoolkit>=10

yml文件并没有指定固定版本,而只是 >=。使用默认的yml文件初始化环境,得到的版本是

Python 3.9.16 torch 1.13.1 torchaudio 0.13.1

PyTorch使用GPU需要版本能匹配。可在 PyTorch版本匹配参考 查看到 CUDA,Python,Torch 兼容的版本号。默认yml获取的版本存在兼容性问题,需要在yml中指定可兼容的版本号,即可解决问题。

三、解决部署Demucs容易遇到的的三个小问题 3.1 `Can not execute `setup.py` since setuptools is not available in the build environment`

尝试 更新 pip setuptools

python -m pip install --upgrade pip python -m pip install --upgrade setuptools 3.2 `ModuleNotFoundError: No module named ‘_ctypes’`

执行

yum install -y libffi-devel 或 sudo apt-get install libffi-dev 3.3 ‘soundfile’ backend is not available.

报错如下:

/root/projects/voice_factory/venv/lib/python3.9/site-packages/torchaudio/_internal/module_utils.py:99: UserWarning: Failed to import soundfile. 'soundfile' backend is not available. warnings.warn("Failed to import soundfile. 'soundfile' backend is not available.")

执行

yum -y install libsndfile


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有